<?php

class Reserva_Model extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    function getReservas($idUsuario) {
        $cad = "SELECT re.idReserva idReserva, p.fecha fecha, p.horaSalida hora, t1.descripcion terminalOrigen, t2.descripcion terminalDestino, re.montoPagar montoPagar,  re.formaPago formaPago, re.tarjeta tarjeta, re.numAsientos numAsientos
                FROM Reserva re, Programacion p, Ruta ru, Terminal t1, Terminal t2
                WHERE re.idProgramacion=p.idProgramacion and p.idRuta=ru.idRuta and ru.idTerminalOrigen=t1.idTerminal and ru.idTerminalDestino=t2.idTerminal and re.idUsuario='" . $idUsuario . "' and re.estado='0'";
        $sql = $this->db->query($cad);
        return $sql->result_array();
    }

    function insertReserva($idUsuario, $idProgramacion, $montoPagar, $numAsientos, $formaPago, $tarjeta) {
        $data = array(
            'idProgramacion' => $idProgramacion,
            'idUsuario' => $idUsuario,
            'montoPagar' => $montoPagar,
            'numAsientos' => $numAsientos,
            'fechaReserva' => date('Y-m-d'),
            'estado' => '0', //reservado
            'formaPago' => $formaPago,
            'tarjeta' => $tarjeta
        );
        $this->db->insert('Reserva', $data);
        return $this->db->insert_id();
    }

    function insertReservaVenta($idUsuario, $idProgramacion, $montoPagar, $numAsientos, $formaPago, $tarjeta) {
        $data = array(
            'idProgramacion' => $idProgramacion,
            'idUsuario' => $idUsuario,
            'montoPagar' => $montoPagar,
            'numAsientos' => $numAsientos,
            'fechaReserva' => date('Y-m-d'),
            'fechaPago' => date('Y-m-d'),
            'estado' => '1', //pagado
            'formaPago' => $formaPago,
            'tarjeta' => $tarjeta
        );
        $this->db->insert('Reserva', $data);
        return $this->db->insert_id();
    }

    function updateReserva($reserva) {
        $data = array(
            'estado' => '1', //pagado
            'fechaPago' => date('Y-m-d'),
        );
        $this->db->where('idReserva', $reserva);
        $this->db->update('Reserva', $data);
        return $this->db->affected_rows();
    }

    function deleteReserva($reserva) {
        $data = array(
            'estado' => '2' //cancelado
        );
        $this->db->where('idReserva', $reserva);
        $this->db->update('Reserva', $data);
        return $this->db->affected_rows();
    }

    function savePasajeros($idReserva, $asientos, $pasajeros) {
        //TODO: falta implementar
    }

    function getPasajesCount($idUsuario) {
        $cad = "SELECT count(*) pasajes
                FROM Reserva r
                WHERE r.idUsuario='" . $idUsuario . "' and r.estado='1'";
        $sql = $this->db->query($cad);
        return $sql->row();
    }

    function getReservasCount($idUsuario) {
        $cad = "SELECT count(*) reservas
                FROM Reserva r
                WHERE r.idUsuario='" . $idUsuario . "' and r.estado='0'";
        $sql = $this->db->query($cad);
        return $sql->row();
    }

    function getPasajes($idUsuario) {
        $cad = "SELECT re.idReserva idReserva, p.fecha fecha, p.horaSalida hora, t1.descripcion terminalOrigen, t2.descripcion terminalDestino, re.montoPagar montoPagar,  re.formaPago formaPago, re.tarjeta tarjeta, re.numAsientos numAsientos
                FROM Reserva re, Programacion p, Ruta ru, Terminal t1, Terminal t2
                WHERE re.idProgramacion=p.idProgramacion and p.idRuta=ru.idRuta and ru.idTerminalOrigen=t1.idTerminal and ru.idTerminalDestino=t2.idTerminal and re.idUsuario='" . $idUsuario . "' and re.estado='1'";
        $sql = $this->db->query($cad);
        return $sql->result_array();
    }

}